By Mats Halfvares, the Content Studio development team

The new Service Manager in Content Studio version 5 replaces the old infrastructure, built on the MS Message Queuing Services, that was used in previous versions of Content Studio. The Service Manager handles asyncronous and syncronous events and background tasks in Content Studio and implemented as a regular multithreaded service it can be configured according to the need of your web site. During execution, at a certain pull-interval, every thread in the Service Manager asks Content Studio if there is any job to do. If a job is found it will be assigned on the first thread that finds it. The jobs are distributed on a queue basis so that the oldest jobs gets distribute first. Each thread traverses round among the installed websites on the server until it finds a job. Each thread are assigned its own thread id and even thread traverses the sites in the highest to lowest order and the uneven traverses the sites in reverse order. Between each site, each thread wait the pull interval before asking the next site for more jobs. Since you never know how long an individual job will take it is not possible to predict when a job will be executed.

New functionality in Content Studio 5.2

In version 5.2 a new background service, Dynamic Event Processor (DEPRO) has been introduced. This service currently has two main purposes; manage the new OnDocumentPublished, OnDocumentUnPublished and OnDocumentArchive events and to detect when a background job should be created for a document subscription. DEPRO is to its nature more low priority compared to the regular Service Manager that exectutes jobs it finds in the Event Actions queue. For this reason this process runs with fewer threads and not as often as the main service. You can set these to higher values but that will increase the load on the database server. However, if you have many web sites on the same server this can be appropriate.

Security

The Service Manager runs by default under the Network service system account. This account is designed to be used by any service that needs network access and that runs with the lowest possible privilges on the local system. When the Network service communicates with other computers it will be identified by them as a regular machine account when the computer is a member server in Active Directory or a null session when communicating between stand-alone machines. In Content Studio a special privilege "ServiceQueueAdmin" is required to access the API:s used by the Service Manager and by default an account running as a service will have this privilege.

Configuring the service

You configure the Service Manager by setting a few values in the registry. As always, editing the registry can be dangerous and should only be done by knowlegeby personel since errors can make your computer impossible to use.

Of the values above the only values you should work with is PullInterval, Threads, DynamicEventThreads and DynamicEventPullinterval. As a general rule for a web server with few Content Studio sites installed you should use a high value for PullInterval (more that 30 seconds probably) and only a few threads (one or two, perhaps). Using a many threads and short pull intervals will cause the Service Manager to cause an extensive amount of traffic both to Content Studio Server and SQL Server. However, for a Web server with a lot of sites installed you would like the oppsite since a lot of Web sites needs to be served.
During development when adding or removing indexed EPT fields occurs frequently you might need to set a higher pull interval in order to see changes more quickly.